package py.progweb.sgc.gui.client.dialog;

import py.progweb.sgc.gui.client.service.ABMService;
import py.progweb.sgc.gui.client.service.ABMServiceAsync;
import py.progweb.sgc.gui.shared.dialogmodel.DataRecord;
import py.progweb.sgc.model.Producto;

import com.google.gwt.core.client.GWT;
import com.smartgwt.client.widgets.form.fields.TextItem;

public class FormularioProductos extends FormularioBase {

	Producto producto = new Producto();
	TextItem codProductoPk, nombre, stock, precio_actual, ganancia;
	ABMServiceAsync service;

	public FormularioProductos(VentanaBase padre) {
		super("Producto", padre);

		codProductoPk = new TextItem();
		codProductoPk.setTitle("codProductoPk");
		codProductoPk.setDisabled(true);

		nombre = new TextItem();
		nombre.setTitle("Nombre");
		nombre.setRequired(true);

		stock = new TextItem();
		stock.setTitle("Stock");
		stock.setRequired(false);

		precio_actual = new TextItem();
		precio_actual.setTitle("Precio");
		precio_actual.setRequired(false);

		ganancia = new TextItem();
		ganancia.setTitle("Ganancia%");
		ganancia.setRequired(false);

		this.setItems(codProductoPk, nombre, stock, precio_actual, ganancia);

		service = GWT.create(ABMService.class);
	}

	@Override
	public void reset() {
		codProductoPk.setValue("");
		nombre.setValue("");
		stock.setValue("");
		precio_actual.setValue("");
		ganancia.setValue("");
	}

	@Override
	protected void guardar() {
		if (!vacio(codProductoPk.getValue()))
			producto.setCodProductoPk(Integer.parseInt(codProductoPk.getValue()
					.toString()));
		producto.setNombre(nombre.getValue().toString());
		if (!vacio(stock.getValue())){
			producto.setStock(Integer.parseInt(stock.getValue().toString()));
		}else{
			producto.setStock(0);
		}
		if (!vacio(precio_actual.getValue())){
			producto.setPrecio_actual(Integer.parseInt(precio_actual.getValue().toString()));
		}else{
			producto.setPrecio_actual(0);
		}
		if(!vacio(ganancia.getValue())){
			producto.setGanancia(Integer.parseInt(ganancia.getValue().toString()));
		}else{
			producto.setGanancia(0);
		}

		service.guardar(producto, callback);
	}

	public void setData(DataRecord dr) {
		codProductoPk.setValue(dr.getAtributo("codProductoPk").toString());
		nombre.setValue((String) dr.getAtributo("nombre"));
		stock.setValue((Integer) dr.getAtributo("stock"));
		precio_actual.setValue((Integer) dr.getAtributo("precio_actual"));
		ganancia.setValue((Integer) dr.getAtributo("ganancia"));

	}
}